package es.ruido4design.pfc.strategy;

import org.hibernate.cfg.reveng.ReverseEngineeringStrategy;
import org.hibernate.cfg.reveng.TableIdentifier;

public class RevengStrategy extends org.hibernate.cfg.reveng.DelegatingReverseEngineeringStrategy {

	public RevengStrategy(ReverseEngineeringStrategy delegate) {
		super(delegate);
	}

	@Override
	public String tableToClassName(final TableIdentifier table) {
		final String className = super.tableToClassName(table);
		return getClassName(className);
	}

	private String getClassName(String className) {
		final String packageName = "edu.uoc.vmerinom.tfc.domain.";
		final String nombreClase = className.replaceAll(packageName, "");
		if ("Asistentes".equals(nombreClase)) {
			return packageName + "Asistente";
		} else if ("Casillas".equals(nombreClase)) {
			return packageName + "Casilla";
		} else if ("Componentes".equals(nombreClase)) {
			return packageName + "Componente";
		} else if ("Cuotas".equals(nombreClase)) {
			return packageName + "Cuota";
		} else if ("Deudas".equals(nombreClase)) {
			return packageName + "Deuda";
		} else if ("Grupos".equals(nombreClase)) {
			return packageName + "Grupo";
		} else if ("Horas".equals(nombreClase)) {
			return packageName + "Hora";
		} else if ("Perfiles".equals(nombreClase)) {
			return packageName + "Perfil";
		} else if ("Reuniones".equals(nombreClase)) {
			return packageName + "Reunion";
		} else if ("Solicitudes".equals(nombreClase)) {
			return packageName + "Solicitud";
		} else if ("Usuarios".equals(nombreClase)) {
			return packageName + "Usuario";
		}
		return className;
	}
}
